package com.weixing.mall.provider.model.query;

import com.weixing.mall.base.enums.WhetherEnum;
import com.weixing.mall.core.enums.OrderSysTagEnum;
import com.weixing.mall.provider.api.model.enums.OrderTypeEnum;
import com.weixing.mall.provider.api.model.enums.SettleStateEnum;
import com.weixing.mall.provider.model.enums.*;
import lombok.Data;

import java.util.List;

/**
 * 客服订单报表查询
 *
 * @author  siashan
 * @since  v2.0
 */
@Data
public class KefuReportQuery {
    /**
     * 收件人信息,订单编号
     */
    private String information;
    /**
     * 订单类型
     */
    private OrderTypeEnum orderType;
    /**
     * 订单来源
     */
    private OrderFromEnum orderFrom;
    /**
     * 订单状态
     */
    private OrderStateEnum orderStatus;
    /**
     * 支付状态
     */
    private WhetherEnum isPay;

    /**
     * 开始时间
     */
    private String startTime;
    /**
     * 结束时间
     */
    private String endTime;
    /**
     * 所属代理商
     */
    private Long agentId;

    /**
     * 代理商等级
     */
    private Integer agentLv;
    /**
     * 所属客服
     */
    private Long customerId;
    /**
     * 所属经销商
     */
    private Long distributorId;
    /**
     * 活动id
     */
    private Long actId;
    /**
     * 会员名称
     */
    private String nickName;
    /**
     * 客户姓名
     */
    private String contactUser;
    /**
     * 手机号
     */
    private String contactPhone;
    /**
     * 下单人
     */
    private String buyer;
    /**
     * 活动名称
     */
    private String actName;
    //-----goodsSn 统称货号 2020-4-22 会议定下前端统一用这个
    /**
     * 货号
     */
    private String goodsSn;
    /**
     * 支付流水号
     */
    private String outTradeNo;
    /**
     * 订单编号
     */
    private String orderSn;
    /**
     * 款号
     */
    private String styleNo;
    /**
     * 审核开始时间
     */
    private String startAuditTime;
    /**
     * 审核结束时间
     */
    private String endAuditTime;
    /**
     * 订单审核状态
     */
    private OrderAuditStateEnum auditStatus;
    /**
     * 开始时间
     */
    private String createStartTime;
    /**
     * 结束时间
     */
    private String createEndTime;
    /**
     * 发货员id
     */
    private Long shipperId;
    /**
     * 取消开始时间
     */
    private String canceledStartTime;
    /**
     * 取消结束时间
     */
    private String canceledEndTime;
    /**
     * 断货或取消审核通过开始时间
     */
    private String nosuppllyStartTime;
    /**
     * 断货或取消审核通过结束时间
     */
    private String nosuppllyEndTime;
    /**
     * 是否线上订单 0线下 1线上
     */
    private WhetherEnum isOnline;

    // 前台无需传递的参数，有后台维护
    /**
     * 订单状态组(前台无需传递，后台判定)
     *
     * @ignore
     */
    private List<Integer> orderStates;

    /**
     * 审核部门(前台无需传递，后台判定)
     *
     * @ignore
     */
    private AuditDeptEnum auditDept;

    /**
     * 需审核人(前台无需传递，后台判定)
     *
     * @ignore
     */
    private Long auditor;

    /**
     * 是否是代理认领订单(前台无需传递，后台判定)
     *
     * @ignore
     */
    private OrderIsClaimEnum isClaim;

    /**
     * 货品码(前台无需传递，后台判定)
     *
     * @ignore
     */
    private String productSn;

    /**
     * 是否已结算(前台无需传递，后台判定)
     *
     * @ignore
     */
    private SettleStateEnum settleState;


    /**
     * 订单货品状态(前台无需传递，后台判定)
     *
     * @ignore
     */
    private ProductStatusEnum itemStatus;


    /**
     * 秒杀活动未绑定订单标识(前台无需传递，后台判定)
     *
     * @ignore
     */
    private WhetherEnum seckillNobindFlag;

    /**
     * 秒杀活动是否已绑定   0 未绑定   1 已绑定
     */
    private WhetherEnum isBind;

    /**
     * 后台标签
     */
     private OrderSysTagEnum sysTag;
    /**
     * 快递收费方式  1包邮 2 到付
     */
     private Integer expressType;


    /**
     * 详细地址
     */
     private String addrDetail;


    /**
     * 快递公司名称
     */
    private String expressName;
    /**
     * 快递单号
     */
    private String expressSn;
    /**
     * 列表排序(当前排序值 1 按手机号排序 2 按下单时间排序)
     */
    private Integer orderValue;


    /**
     * 库存编码
     */
    private String stockSn;

    //-------------------售后-------------------------------------//

    /**
     * 售后--售后类型
     */
     private AfterSalesTypeEnum afterSaleType;

    /**
     * 售后--售后状态
     */
    private AfterSaleAuditEnum afterSaleStatus;

    /**
     * 售后--是否确认处理
     */
    private Integer confirmHandle;

    /**
     * 售后--是否质检
     */
    private Integer isQualityCheck;
    /**
     * 售后--扫码接收时间
     */
    private String receiveStartTime;
    /**
     * 售后--扫码接收结束时间
     */
    private String receiveEndTime;
    /**
     * 售后--是否换货    1  是   0 不是
     */
    private Integer afterSaleTag;
}
